package com.dnndo.system.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * 修改用户信息 客户端修改
 */
@Data
@ApiModel("用户对象")
public class SysUserUpdataMySelfDTO {
  /**
   * 修改用户信息。举个例子：修改用户名需要3个参数，分别是，用户名，用户名英文，类型。
   * 修改描述需要三个参数，分别是，用户描述，用户描述英文，类型。
   * 修改头像需要两个参数，即上传的文件，type。
   * 修改学校需要两个参数选一个+type，分别是，学校名称，学校名称英文 ，type。
   * 修改手机号需要两个参数，即手机号，type。
   * 修改密码需要四个参数，即旧密码，新密码，确认密码，type。
   * 修改形象照需要两个参数，即上传的文件，type。
   * type:类型，修改用户名：info_userName,修改描述：briefIntroduction,修改头像：info_avatar，
   * 修改形象照：imagePhoto，修改手机号：info_phone，修改学校：info_schoolName，修改密码：password
   */
  private final List<String> types = Arrays.asList("info_userName", "briefIntroduction","info_avatar",
    "imagePhoto","info_phone","info_schoolName","password");
  /**
   * 用户ID
   */
  private Long userId;

  /**
   * 用户昵称
   */
  @ApiModelProperty(value = "用户昵称", name = "nickName", required = true)
  private String userName;
  private String userNameEn;
  /**
   * 手机号码
   */
  @ApiModelProperty(value = "手机号码", name = "phonenumber", required = true)
  private String phone;

  /**
   * 用户性别
   */
  @ApiModelProperty(value = "用户性别 0男 1女 2未知", name = "sex", required = true)
  private String sex;

  /**
   * 用户头像
   */
  @ApiModelProperty(value = "用户头像", name = "avatar", required = true)
  private String avatar;

  /**
   * 修改学校需要使用的参数
   */
  private String schoolName;
  private String schoolNameEn;
  private String schoolId;

  /**
   * 用户简介
   */
  private String briefIntroduction;
  /**
   * 英文简介
   */
  private String briefIntroductionEn;

  /**
   * 形象照
   */
  private String imagePhoto;

  /**
   * 上传文件
   */
  private List<MultipartFile> files;

  /**
   * 修改密码需要使用的参数
   */
  private String password;
  private String newPassword;
  private String newPasswordTwo;
  private String type;
}
